﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace HostAgentCore
{
    interface IHostAgentBase : IDisposable
    {
        bool TryConnect();
        void ReleaseDeviceConnection();

        InstallationResult ForceInstall(ApplicationDefinition applicationDefinition);
        InstallationResult Install(ApplicationDefinition applicationDefinition);

        UninstallationResult ForceUninstall(ApplicationDefinition applicationDefinition);
        UninstallationResult Uninstall(ApplicationDefinition applicationDefinition);

        StopResult Stop(ApplicationDefinition applicationDefinition);
        StartResult Start(ApplicationDefinition applicationDefinition);
        StartResult ForceStart(ApplicationDefinition applicationDefinition);

        event EventHandler<SimpleMessageEventArgs> Trace;
    }
}
